#!/usr/bin/python
# -*- coding: utf-8 -*-

'''
Twisted 按天切分日志演示二
'''

__author__ = 'lyj'


import sys
import time

from datetime import date
#from twisted.application.service import Application
#from twisted.python.log import ILogObserver, FileLogObserver
#from twisted.python.logfile import DailyLogFile
#from twisted.python import log

dev_temp_path = r'j:\_DevTemp'

# 自定义日志
#application = Application("test_daily_log")
#logfile = DailyLogFile("test_daily_log.log.%s"%start_date, dev_temp_path)
#application.setComponent(ILogObserver, FileLogObserver(logfile).emit)

from twisted.python import log
# ex3 通过一个类似文件对象来开始日志
# 缺省条件下，startLogging会同时将输出重定向到sys.stdout和sys.stderr
# 你可以在startLogging中设置setStdout=False来禁用这个功能
log.startLogging(sys.stdout)
# or
from twisted.python.logfile import DailyLogFile
#from twisted.python.log import ILogObserver, FileLogObserver
flo = log.startLogging(DailyLogFile.fromFullPath(dev_temp_path + "/foo.log"))

# 应用
#start_date = str(date.today())
#flo = log.startLogging(file(dev_temp_path + "/foo.log.%s"%str(date.today()), 'a+'))
#while True:
#    currt_date = str(date.today())
#    if currt_date != start_date:
#        start_date = currt_date
#        flo.stop()
#        flo = log.startLogging(file(dev_temp_path + "/foo.log.%s"%str(date.today()), 'a+'))
#    log.msg("Hello, world!")
#    time.sleep(5)



# ex1 记录一条信息
log.msg('Hello, world!')

# ex2 把错误写入日志，包括traceback信息
# 你可以传递一个 failure 或者异常的实例，甚至什么都没有。如果传递其他的东西则会通过 repr() 函数获得字符串来显示
# 如果什么都不传递则会自动构造一个 Failure 实例，一般用于 except 子句
try:
    x = 1 / 0
except :
    log.err()

# ex4


time.sleep(400)
print 'End.'

if __name__ == '__main__':
    pass  